// 路由前置守卫
import router from '@/router'
import useUserStore from './stores/user'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
// 结论：
// 1.pinia模块在组件中使用写在组件的最上面
// 2.pinia在ts/js中要写在函数的内部

// to:跳转到的组件
// from:从哪里来的组件
// next:下一步  next()放行   next(false)不放行   next(路径)跳转到该路径

const whiteList = ['/login', '/404']

router.beforeEach((to, from, next) => {
  // 开启进度条
  NProgress.start()

  const user = useUserStore()
  const token = user.userInfo.token
  if (token) {
    // 登录
    if (to.path == '/login') {
      next('/')
    } else {
      next()
    }
  } else {
    // 未登录
    if (whiteList.includes(to.path)) {
      next()
    } else {
      next('/login')
    }
  }
})

router.afterEach(() => {
  NProgress.done()
})
